#include <stdio.h>
#include <omp.h>

#pragma omp declare target
int fib(int N);
#pragma omp end declare target

#define THRESHOLD 1000000

void fib_wrapper(int n) {
    int e;
    #pragma omp target if(n > THRESHOLD)
    {
        e=fib(n);
    }
    printf("%d",e);
}


#pragma omp declare target
int fib(int N) {
    if (N <= 1) return N;
    return fib(N-1) + fib(N-2);
}
#pragma omp end declare target

int main() {
    fib_wrapper(10);
    return 0;
}
